<template>
	<div>
		<el-select v-model="SelSysCompanyId" placeholder="请选择企业" filterable @click="getSysCompanyData" :style="selectStyle">
		  <el-option v-for="i in sysCompanyOptions" :key="i.sysCompanyId" :label="i.companyName" :value="i.sysCompanyId"></el-option>
		</el-select>
	</div>
	<div v-show="hasSelSysBranchOffice">
		<el-select v-model="SelSysBranchOfficeId" placeholder="请选择分公司" filterable :style="selectStyle"><!-- :style="{'width':selectWidth}"> -->
		  <el-option v-for="m in sysBranchOfficeOptions" :key="m.sysBranchOfficeId" :label="m.officeName" :value="m.sysBranchOfficeId"></el-option>
		</el-select>
	</div>
</template>
<script>
/** 
 * 选择企业  选择分公司
加载企业数据 ---> 选企业项 ---》加载分公司数据
		---》1个分公司 直接触发回调
		---》>1 多个分公司 选择分公司 -- 触发回调  **/
	import sysCompanyAPI from '@/api/system/sysCompany';
	import sysBranchOfficeAPI from '@/api/system/sysBranchOffice';
	export default {
		name: "glSelectCO",
		props: ["parentLoadingFunction",//等待显示回调函数
				"parentGetData",//加载数据回调函数
				"selectStyle",//宽度
			],
		data() {
			return {
				SelSysCompanyId: "",
				SelSysCompanyIdOld: "-1",
				SelSysBranchOfficeId: "",
				SelSysBranchOfficeIdOld: "",
				sysCompanyOptions: [],
				sysBranchOfficeOptions: [],
				hasSelSysBranchOffice: false,
			}
		},
		watch: {
			SelSysCompanyId(val){//选中企业值触发
				console.log("---企业---",val);
				this.getSysBranchOfficeData();
			},
			SelSysBranchOfficeId(val){//选中分公司值触发
				if(this.SelSysBranchOfficeIdOld == val)return;
				this.SelSysBranchOfficeIdOld = val;
				console.log("=======分公司======",val);
				this.parentGetData(this.SelSysBranchOfficeId);//回调加载数据
			}
		},
		computed: {
		},
		mounted(){
		},
		methods: {
			async getSysCompanyData(){//加载企业数据
				if(this.sysCompanyOptions.length < 1){
					this.parentLoadingFunction(true);
					let reqData = {"current": 1,"size": 1000};
					var res = await sysCompanyAPI.sysCompany.init.get(reqData);
					this.parentLoadingFunction(false);
					if(res.code === 2000){
						this.sysCompanyOptions=res.data.records;
					}else{
						//this.$alert(res.message, "提示", {type: 'error'});
						this.$message.warning(res.message);
					}
				}
			},
			async getSysBranchOfficeData(){//加载分公司数据
				if(this.SelSysCompanyIdOld != this.SelSysCompanyId){//如果重新选择了企业
					this.SelSysCompanyIdOld = this.SelSysCompanyId;
				}else{
					return false;
				}
				console.log("=======加载分公司数据======",this.SelSysCompanyId);
				this.sysBranchOfficeOptions=[];
				this.hasSelSysBranchOffice = false;
				if(this.SelSysCompanyId==""){
					//this.$alert("请您先选择企业", "提示", {type: 'error'});
					this.$message.warning("请您先选择企业！");
					return false;
				}
				this.parentLoadingFunction(true);
				let reqData = {"current": 1,"size": 1000,"sysCompanyId": this.SelSysCompanyId};
				var res = await sysBranchOfficeAPI.sysBranchOffice.list.get(reqData);
				this.parentLoadingFunction(false);
				if(res.code === 2000 && res.data.records){
					if(res.data.records && res.data.records.length){//有数据
						this.sysBranchOfficeOptions=res.data.records;
						let sbooLength=this.sysBranchOfficeOptions.length;
						if(sbooLength<1){//没有分公司
							//this.$alert('请您为该企业至少创建一个分公司！', "提示", {type: 'error'});
							this.$message.warning("请您为该企业至少创建一个分公司！");
							this.SelSysBranchOfficeId = null;//监听会触发回调
							return false;
						}else if(sbooLength==1){//一个分公司
							this.SelSysBranchOfficeId = this.sysBranchOfficeOptions[0].sysBranchOfficeId;//监听会触发回调
						}else{//多个分公司
							this.SelSysBranchOfficeId = this.sysBranchOfficeOptions[0].sysBranchOfficeId;//默认第一个 ，监听会触发回调
							this.hasSelSysBranchOffice = true;//打开选择分公司框
						}
					}else{
						this.SelSysBranchOfficeId = null;//监听会触发回调
					}
				}else{
					//this.$alert(res.message, "提示", {type: 'error'});
					this.$message.warning(res.message);
					this.SelSysBranchOfficeId = null;//监听会触发回调
				}
			},
		}
	}
</script>
